searching and sorting techniques in data structures